A. Technical Field
The present invention relates generally to microcontrollers, and more particularly, to the secure management of block data within an integrated microcontroller cache sub-system and external memory device(s).
B. Background of the Invention
Content protection within a processor or microcontroller has been a challenge for the electronic industry for some time. As semiconductor technology has advanced, many microcontrollers have become complex integrated systems-on-chip. However, systems-on-chip technology is often time limited by the amount of memory space that can be effectively integrated and managed internally within the microcontroller. Integrating a larger memory within a microcontroller requires that additional space, timing, power and control issues be addressed when the microcontroller is designed. This issue of integrating internal memory within a microcontroller will become even more significant as future microcontroller applications are developed which demand larger memory to store both data and instructions.
In addressing these issues, one approach is to move memory to a location external to the integrated microcontroller. This allows for both power and space constraints to be transitioned outside of the integrated microcontroller circuit. For many microcontroller systems, the use of external memory is a preferred solution for storage of both data and program code in terms of both size and cost. However, the protection of stored content within external memory is problematic, especially for secure transactions with highly sensitive information, because this stored data resides outside of the secure environment of the integrated microcontroller. The use of external memory may potentially reduce the performance of the microcontroller because data coherency must be maintained between memory devices within the microcontroller system.
The use of external memory may also introduce latency within the microcontroller read/write command execution that drives the microcontroller performance below an acceptable level. The use of external memory further complicates a microcontroller because of the time requirements for accessing content from an external memory as well as securing that traffic between the microcontroller and external memory. In particular, the time required to read and/or write to an external memory may be burdensome to certain applications and significantly reduce the performance of the microcontroller. Additionally, because content within an external memory is secure, a microcontroller would need to decrypt content each time the content is processed within the microcontroller and re-encrypt each time content is stored within the external memory.
In many real-time applications, the time constraints caused by encryption and decryption functions, as well as associated read and write operations, may significantly reduce the performance of the microcontroller. Accordingly, what is needed is a microcontroller and external memory system that is able to more efficiently manage encryption and decryption operations within a real-time environment as well as manage stored content within this system. Additionally, the microcontroller must maintain data coherency within its memory and cache systems to ensure proper operation.